package com.zw.mes.entity.technology;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zw.mes.base.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.*;
import java.util.Date;

/**
 * @Description: 外观设计主表
 *
 * @Author: China.wsg
 * @Date: 2020/11/16 14:28
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class DsnCoatSheet extends BaseModel {

    private Integer id;

    /** 制作件主表ID*/
    private Integer sheetId;

    /** 项目外键 */
    private Integer proId;

    /** 项目编号 */
    private String proCode;

    /** 项目名称 */
    private String proName;

    /** 项目数量 */
    private Integer proNum;

    /** 专业（机械、流体、自动化） */
    private String special;

    /** 部分Id */
    private Integer proPartId;

    /** 部分 */
    private String proPart;

    /** 部分 */
    private String part;

    /** 状态 1=未提交，2=已提交，3=被驳回，4=撤消，5=全部审核通过 */
    @Column(columnDefinition = "tinyint")
    private Integer status = 1;

    /** 审核驳回原因 */
    private String rejectReason;

    /** 删除状态 0：默认， 1：删除 */
    @Column(columnDefinition = "tinyint")
    private Integer isDel = 0;

    /** 表单类型 1=原始，2=变更 */
    @Column(columnDefinition = "tinyint")
    private Integer sheetType;

    /** 提报人在表里的主键Id用于审核用的 */
    private Integer createId;

    /** 创建人编号 */
    private String createCode;

    /** 创建人名称 */
    private String createName;

    /** 创建人电话 */
    private String createTel;

    /** 创建人部门ID */
    private Integer deptId;

    /** 创建人部门名称 */
    private String deptName;

    /** 创建人科室名称 */
    private Integer branchId;

    /** 创建人科室名称 */
    private String branchName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime = new Date();

    /** 提报人部门职称（例如：设计员，科长）审核用的 */
    private String postDept;

    /** 技术要求 */
    @Column(columnDefinition = "nvarchar(1000)")
    private String require;

    /** 是否可以变更 0=否，1=是 */
    @Column(columnDefinition = "tinyint")
    private Integer mayChange = 0;

    /** 审核人ID */
    @Transient
    private Integer verifierId;

    /** 所长审核时间 */
    @Transient
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date verifyTime;

    /** 所长审核状态 */
    @Transient
    private Integer verifyStatus;

    /** 所长审核标识 */
    @Transient
    private Integer verifyCur;

    /** 科长审核状态 */
    @Transient
    private Integer reviewStatus;

    /** 科长审核标识 */
    @Transient
    private Integer reviewCur;

    /** 审核状态 */
    @Transient
    private Integer rejectStatus;

    /** 当前审核层级 */
    @Transient
    private Integer cur;

    /** 是否最后审核 0=否， 1=是 */
    @Transient
    private Integer comp;

    /** 审核人ID */
    @Transient
    private Integer verifyProcessId;

    /** 字符串 */
    @Transient
    private String ids;

    /** 审核时间*/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date rTime;
    /** 审批时间*/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date aTime;

    /** 生产接收状态*/
    private Integer proRecStatus;

    /** 生产接收人*/
    private String proRecName;

    /**审核人*/
    private String reviewer;

    /** 审批人*/
    private String approval;

    /** 生产接收时间*/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date proRecTime;





/*******************************************************************************************************************/
    /** 涂装主表外键 */
    private Integer dsnCoatSheetId;

    /** 图号 */
    private String drawNo;

    /** 图名 */
    private String drawName;

    /** 数量 */
    private Integer num;

    /** 底漆面积 */
    private String primerArea;

    /** 面漆面积 */
    private String topcoatArea;

    /** 底漆颜色 */
    @Column(columnDefinition = "nvarchar(255)")
    private String primerColor;

    /** 面漆颜色 */
    @Column(columnDefinition = "nvarchar(255)")
    private String topcoatColor;

    /** 备注 */
    @Column(columnDefinition = "nvarchar(255)")
    private String remark;

    /** 附件URL */
    private String url;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date uploadTime;

    /** 已变更 0：默认，1=已变更，2=变更删除 */
    @Column(columnDefinition = "tinyint")
    private Integer changeStatus = 0;

    /** 父级Id */
    private Integer pid;

    /** 图号排序标识 */
    private Integer orderNum;

    /** resultOrderNum */
    @Transient
    private Integer resultOrderNum;

    /**************************************************************************************************************/

    /** 明细表关联ID */
    private Integer dsnCoatDetailId;


    /** 修改后图号 */
    private String afterDrawNo;

    /** 修改后图名 */
    private String afterDrawName;

    /** 修改后数量 */
    private Integer afterNum;

    /** 修改后底漆面积 */
    private String afterPrimerArea;

    /** 修改后面漆面积 */
    private String afterTopcoatArea;

    /** 修改后底漆颜色 */
    @Column(columnDefinition = "nvarchar(255)")
    private String afterPrimerColor;

    /** 修改后面漆颜色 */
    @Column(columnDefinition = "nvarchar(255)")
    private String afterTopcoatColor;

    /** 修改后备注 */
    @Column(columnDefinition = "nvarchar(255)")
    private String afterRemark;

    /** 修改后附件URL */
    private String afterUrl;

    /** 修改后上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date afterUploadTime;


    /** 原变更ID */
    private Integer changeId;

    /** 变更原因 */
    private String changeReason;



    /** -1=不变， 1=已变更，2=变更删除,3=变更增加 */
    private Integer technologyChange;





}
